package Negocio;

import java.sql.Date;
import java.util.List;
import java.util.Vector;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;

import VO.FacturaVO;

@Entity
@Table(name = "Facturas")

public class Factura {

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int numero;
	@OneToOne
	@JoinColumn(name = "id")
	private Cliente cliente;
	private Date fecha;
	@OneToOne
	@JoinColumn(name = "idRemito")
	private RemitoCliente remito;
	@Column(name = "descuelto", columnDefinition = "DECIMAL(10,2)")
	private Float descuento;
	@OneToOne
//	@JoinColumn(name = "id")
	private Cotizacion cotizacion;
	private String estado;

	public Factura(Cliente cliente, RemitoCliente remito, Float descuento,Cotizacion cotizacion) {
		
		super();
		this.cliente = cliente;
		this.fecha = null; // Poner fecha nueva del sistema.
		this.remito = remito;
		this.descuento = descuento;
		this.cotizacion = cotizacion;
	
		}
	
	public Factura(){}
	
	public Cotizacion getCotizacion() {
		return cotizacion;
	}

	public void setCotizacion(Cotizacion cotizacion) {
		this.cotizacion = cotizacion;
	}

	public Cliente getCliente() {
	return cliente;
	}
		
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public RemitoCliente getRemito() {
		return remito;
	}
	public void setRemito(RemitoCliente remito) {
		this.remito = remito;
	}
	public Float getDescuento() {
		return descuento;
	}
	public void setDescuento(Float descuento) {
		this.descuento = descuento;
	}



	public void  CalcularPrecio(){

	}
/// como podemos generar un remito y tenerlo en la factura no deberia generarse fuera de la clase factura??

	public void GenerarRemito(){

	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public FacturaVO getVO() {
		// TODO Auto-generated method stub
		return null;
	}
}
